#pragma once
#include "EnemyUnit.h"
#include "../SGD Wrappers\SGD_Listener.h"
#include "../SGD Wrappers\SGD_Declarations.h"

class BaseBehavior;

class Worker : public EnemyUnit, public SGD::Listener
{
	bool isAlive = true;

	BaseBehavior* currBehavior = nullptr;
	BaseObject* m_pHome = nullptr;
public:
	Worker();
	~Worker();

	virtual void Update(float dt)	 override;
	//virtual void Render()			 override;
	virtual void HandleEvent(const SGD::Event* pEvent);	
	virtual void HandleCollision(const IBase* pOther) override;
	void RetrieveBehavior(std::string name);

//	virtual SGD::Rectangle	GetRect(void)	const;
	virtual int GetType(void) const override { return OBJ_WORKER; }
	void SetHome(BaseObject* home);

	friend class BaseBehavior;

};

